from django import template
from LogisticsCard.models import Menu

register = template.Library()

@register.simple_tag(takes_context=True)
def get_sidebar_menus(context):
    user = context['request'].user
    if not user.is_authenticated:
        return []
    
    # 获取用户类型
    user_type = 'user'  # 默认为普通用户
    if hasattr(user, 'profile') and user.profile:
        user_type = user.profile.type
    
    # 根据用户类型和菜单权限过滤菜单
    menus = Menu.objects.filter(status=True, is_active=True, delete_at__isnull=True)
    
    if user_type == 'admin':
        # 管理员可以看到所有菜单
        menus = menus.filter(permission__in=[0, 1, 4, 5])
    elif user_type == 'config_user':
        # 配置用户可以看到配置相关菜单
        menus = menus.filter(permission__in=[0, 3, 4])
    else:  # user
        # 普通用户只能看到普通用户菜单
        menus = menus.filter(permission__in=[0, 2, 5])
    
    return menus.order_by('order')
